/** * Javascript for Google Ads * **/ /** * Ad Position Creation */ googletag.cmd.push(function () { // Object from Ajax var dfp_ad_data = dfp_ad_object[0], acct_id = dfp_ad_data.account_id; /** * Loads Ad Position * * @param {Array} positions - Array of ad positions */ function load_ad_positions(dfp_ad_data) { var positions = dfp_ad_data.positions; var ad_pos, len; // Run through positions for (ad_pos = 0, len = positions.length; ad_pos < len; ++ad_pos) { var x = document.getElementsByClassName(positions[ad_pos].position_tag); //console.log(positions[ad_pos].position_tag); //if(x.length) define_ad_slot(positions[ad_pos],dfp_ad_data); } } /** * Loads Ad Position * * @param {Object} position - Array of ad positions */ function define_ad_slot(position,dfp_ad_data) { var targeting = position.targeting; if(targeting.hasOwnProperty('pos') && dfp_ad_data.page_targeting.pgtype){ if(dfp_ad_data.page_targeting.pgtype=='home') googletag.defineSlot(acct_id ,position.sizes,position.position_tag).addService(googletag.pubads()).setTargeting('pos', targeting.pos).setTargeting('pgtype', dfp_ad_data.page_targeting.pgtype); else{ if(dfp_ad_data.page_targeting.hasOwnProperty('articleid')) googletag.defineSlot(acct_id ,position.sizes,position.position_tag).addService(googletag.pubads()).setTargeting('pos', targeting.pos).setTargeting('pgtype', dfp_ad_data.page_targeting.pgtype).setTargeting('categoryid', dfp_ad_data.page_targeting.categoryid).setTargeting('articleid', dfp_ad_data.page_targeting.articleid); else googletag.defineSlot(acct_id ,position.sizes,position.position_tag).addService(googletag.pubads()).setTargeting('pos', targeting.pos).setTargeting('pgtype', dfp_ad_data.page_targeting.pgtype).setTargeting('categoryid', dfp_ad_data.page_targeting.categoryid); } if(dfp_ad_data.page_targeting.hasOwnProperty('pagetag') && dfp_ad_data.page_targeting.pagetag){ googletag.pubads().setTargeting('pagetag', dfp_ad_data.page_targeting.pagetag); } //console.log(targeting.pos+position.position_tag); //googletag.pubads().enableSingleRequest(); } else if(targeting.hasOwnProperty('pos')){ //console.log(targeting.pos); googletag.defineSlot( acct_id , position.sizes, position.position_tag ).addService(googletag.pubads()).setTargeting('pos', targeting.pos); if(dfp_ad_data.page_targeting.hasOwnProperty('pagetag') && dfp_ad_data.page_targeting.pagetag){ googletag.pubads().setTargeting('pagetag', dfp_ad_data.page_targeting.pagetag); } } //set_targeting(dfp_ad_data.page_targeting); } /** * Sets Page level targeting * @param {object} targeting */ function set_targeting(targeting) { for (var target in targeting) { var key = target.toLowerCase(); googletag.pubads().setTargeting(key, targeting[target]); } } // Generates Ad Slots load_ad_positions(dfp_ad_data); // Collapse Empty Divs //googletag.pubads().collapseEmptyDivs(true); // Targeting // // Asynchronous Loading if (dfp_ad_data.asynch === true) { googletag.pubads().enableAsyncRendering(); } // Go googletag.enableServices(); });